#include <iostream>
#include <windows.h>
#include <fstream>
#include <string>

int quanxian = 0; // 0:未登录 1:已登录 2:钟可怡 3:冯浩哲

void clearScreen() {
    system("cls");
    system("color F0"); // 设置背景为白色，文字为黑色
}

void setColor(int textColor, int bgColor) {
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, (bgColor << 4) | textColor);
}

void displayBorder() {
    std::cout << "==============================================" << std::endl;
}

void showMessage(const std::string& message) {
    clearScreen();
    displayBorder();
    std::cout << "|                                            |\n| " << message << "\n|                                            |\n";
    displayBorder();
}

void showMainMenu() {
    showMessage("请选择操作：\n| 1: 首页                                    |\n| 2: 新闻中心                                |\n| 3: 产品中心                                |\n| 4: 关于我们                                |\n| 5: 联系我们                                |\n| 6: 退出                                    |");
}

void handleMail() {
    showMessage("你有一封来自超级管理员（CEO）的邮件，请注意查收！");
    
    if (GetFileAttributes("mail.txt") != INVALID_FILE_ATTRIBUTES) {
        std::ifstream mailFile("mail.txt");
        if (mailFile.is_open()) {
            std::string line;
            std::cout << "邮件内容如下：\n";
            while (std::getline(mailFile, line)) {
                std::cout << line << std::endl;
            }
            mailFile.close();
        } else {
            MessageBox(NULL, "无法打开邮件文件！", "错误", MB_ICONERROR);
        }
    } else {
        MessageBox(NULL, "你暂时没有阅读权限，权限将在2027年6月9日开放，联系超级管理员（冯浩哲）3410784314314@qq.com！", "提示", MB_ICONERROR);
    }
    system("pause");
}

void handleFileOperation(bool isSend) {
    std::string filename;
    std::cout << (isSend ? "请输入要发送的文件名（包括路径）：" : "请输入接收的文件名（包括路径）：");
    std::cin >> filename;

    if (isSend) {
        std::ifstream infile(filename);
        if (infile.is_open()) {
            std::cout << "文件内容为：\n";
            std::string line;
            while (std::getline(infile, line)) {
                std::cout << line << std::endl;
            }
            infile.close();
        } else {
            showMessage("无法打开文件！");
        }
    } else {
        std::ofstream outfile(filename);
        if (outfile.is_open()) {
            std::cout << "请输入文件内容，输入 'end' 结束：\n";
            std::string line;
            std::cin.ignore(); // 清除输入缓存
            while (std::getline(std::cin, line)) {
                if (line == "end") break;
                outfile << line << std::endl;
            }
            outfile.close();
            showMessage("文件接收成功！");
        } else {
            showMessage("无法创建或打开文件！");
        }
    }
}

bool loginUser(const std::string& username, const std::string& password) {
    return (username == "钟可怡" || username == "冯浩哲") && password == "123456";
}

void login() {
    while (true) {
        showMessage("未登录，正在加载中...\n| 1: 登录                                    |\n| 2: 退出                                    |");
        int choice;
        std::cin >> choice;
        if (choice == 1) {
            std::string username, password;
            std::cout << "请输入用户名："; std::cin >> username;
            std::cout << "请输入密码："; std::cin >> password;

            if (loginUser(username, password)) {
                quanxian = (username == "钟可怡") ? 2 : 3;
                MessageBox(NULL, ("欢迎，" + username + "!").c_str(), "提示", MB_OK | MB_ICONINFORMATION);
                break;
            } else {
                showMessage("用户名或密码错误！");
            }
        } else if (choice == 2) exit(0);
    }
}

void displayContent(int choice) {
    const char* titles[] = {"首页", "新闻中心", "产品中心", "关于我们", "联系我们"};
    showMessage(titles[choice - 1]);
}

void showFileMenu() {
    showMessage("请选择操作：\n| 1: 发送文件                              |\n| 2: 接收文件                              |");
}

int main() {
    system("title 龙华系统官网 V1.0");
    MessageBox(NULL, "欢迎使用龙华系统官网！", "提示", MB_OK | MB_ICONINFORMATION);

    if (GetFileAttributes("loaded.dll") != INVALID_FILE_ATTRIBUTES) {
        quanxian = 1;
    } else {
        login();
    }

    while (true) {
        if (quanxian == 1) {
            showMainMenu();
        } else {
            showMessage("请选择操作：\n| 1: 首页                                    |\n| 2: 新闻中心                                |\n| 3: 产品中心                                |\n| 4: 关于我们                                |\n| 5: 联系我们                                |\n| 6: 退出                                    |\n| 7: 邮件                                    |\n| 8: 文件收发                                |");
        }

        int choice;
        std::cin >> choice;
        if (choice >= 1 && choice <= 5) {
            displayContent(choice);
        } else if (choice == 6) {
            exit(0);
        } else if (choice == 7 && quanxian == 2) {
            handleMail();
        } else if (choice == 8 && quanxian == 3) {
            showFileMenu();
            int fileChoice;
            std::cin >> fileChoice;
            handleFileOperation(fileChoice == 1);
        } else {
            showMessage("输入错误！");
        }
    }
    return 0;
}
